home *** CD-ROM | disk | FTP | other *** search
/ Delphi Magazine Collection 2001 / Delphi Magazine Collection 20001 (2001).iso / DISKS / Issue39 / slimmer / D3.LOG < prev    next >
Encoding:
Text File  |  1998-09-09  |  2.4 KB  |  65 lines

  1.  
  2. In D3 the Exe startup code only calls InitEXE. This is responsible for
  3. calling the init/final code of all other units in the module. This
  4. is done by calling entries in a table created by the linker.
  5.  
  6. inittest.initialization: begin
  7. :00424C84 55             push   ebp
  8. :00424C85 8BEC           mov    ebp,esp
  9. :00424C87 83C4F4         add    esp,FFFFFFF4
  10. :00424C8A B8E44B4200     mov    eax,00424BE4
  11. :00424C8F E83C03FEFF     call   @InitExe
  12. inittest.10:  Application.Initialize;
  13. :00424C94 A198584200     mov    eax,[00425898]
  14. :00424C99 8B00           mov    eax,[eax]
  15. :00424C9B E860F0FFFF     call   TApplication.Initializ
  16.  
  17. Normally, empty try..finally, Inc(AutoGlobal):
  18.  
  19.  
  20. Finalization:  AutoGlobalP := pointer(longint(@UnitGlobal)
  21.  
  22. :00424B58 55             push   ebp
  23. :00424B59 8BEC           mov    ebp,esp
  24. :00424B5B 33C0           xor    eax,eax
  25. :00424B5D 55             push   ebp
  26. :00424B5E 68934B4200     push   00424B93
  27. :00424B63 64FF30         push   fs:dword ptr [eax]
  28. :00424B66 648920         mov    fs:[eax],esp
  29. :00424B69 FF0530674200   inc    dword ptr [00426730]
  30. :00424B6F 7514           jne    INITTEST.00424B85 (00424B85
  31. :00424B71 B82C674200     mov    eax,0042672C
  32. :00424B76 83C004         add    eax,00000004
  33. :00424B79 A328674200     mov    [00426728],eax
  34. testinit.28:  UnitGlobal := 0;
  35. :00424B7E 33C0           xor    eax,eax
  36. :00424B80 A32C674200     mov    [0042672C],eax
  37. :00424B85 33C0           xor    eax,eax
  38. :00424B87 5A             pop    edx
  39. :00424B88 59             pop    ecx
  40. :00424B89 59             pop    ecx
  41. :00424B8A 648910         mov    fs:[eax],edx
  42. :00424B8D 689A4B4200     push   00424B9A
  43. :00424B92 C3             ret
  44. :00424B93 E998E4FDFF     jmp    @HandleFinally
  45. :00424B98 EBF8           jmp    INITTEST.00424B92 (00424B92
  46. testinit.31: end.
  47. :00424B9A 5D             pop    ebp
  48. :00424B9B C3             ret
  49.  
  50.  
  51. Normally, Dec(AutoGlobal);
  52.  
  53. initialization: initialization
  54. :00424B9C 832D3067420001 sub    dword ptr [00426730],000000
  55. :00424BA3 7314           jnb    testinit.22 (00424BB9)
  56. testinit.19:  AutoGlobalP := pointer(longint(@UnitGlobal) +
  57. :00424BA5 B82C674200     mov    eax,0042672C
  58. :00424BAA 83C004         add    eax,00000004
  59. :00424BAD A328674200     mov    [00426728],eax
  60. testinit.20:  UnitGlobal := 0;
  61. :00424BB2 33C0           xor    eax,eax
  62. :00424BB4 A32C674200     mov    [0042672C],eax
  63. testinit.22: finalization
  64. :00424BB9 C3             ret
  65.  
  66.  
  67.